package edu.mis.modules.log;

import java.lang.reflect.Method;
import java.util.Date;

import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;

import edu.mis.model.Log;
import edu.mis.model.User;

/**
 * 全局权限拦截<br>
 * 用户操作日志记录
 */
public class LogInterceptor implements Interceptor{

	@SuppressWarnings("all")
	public void intercept(Invocation inv) {
		Controller c=inv.getController();	
		Method method=inv.getMethod();
		User user=c.getSessionAttr("loginUser"); //从session中得到登录用户
		if(user==null){
			 c.renderFreeMarker("/login.html");
		}else{
			String cstr = c.toString();
			String[] strArray = cstr.split("@");
			String m = strArray[0];
			String[] sa = m.split("\\.");
			String methodName = sa[4]+"/"+method.getName();//操作的方法名
			Date date = new Date();//操作时间
			inv.invoke();
			Log log = new Log();
			log.setUserName(user.getName());//往数据库插入操作人的用户名
			log.setMethod(methodName);//插入方法名
			log.setTime(date);//插入时间
			log.save();
		}
	}

}
